package com.brillilab.dao.mapper.method;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.brillilab.domain.po.method.MethodRecommendAudit;
import com.brillilab.domain.vo.method.MethodAuditInfoVo;
import com.brillilab.domain.vo.method.MethodAuditListVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author wuzhiyu
 * @Title: MethodRecommendAuditMapper
 * @ProjectName brill_lab
 * @Description: TODO
 * @date 2019/2/2311:07
 */
public interface MethodRecommendAuditMapper extends BaseMapper<MethodRecommendAudit> {
	
	/**
	 * 获取推荐方法审核列表
	 * @param labId
	 * @param firstTypeIds
	 * @return
	 */
	List<MethodAuditListVo> getAuditList(@Param("labId") Long labId,@Param("firstTypeIds") List<Long> firstTypeIds,@Param("state") Integer state);
	
	/**
	 * 根据记录ID获取审核记录
	 * @param id
	 * @return
	 */
	MethodAuditInfoVo auditInfo(@Param("id") Long id);

	Integer saveList(@Param("list") List<MethodRecommendAudit> list);
	/**
	 * 根据管理员Id获取前top条的推荐方法记录
	 * @param top 前多少条记录
	 * @param labId 实验室Id
	 * @param state 审核状态0-等待审核,1-已推荐,2-审核未通过,3-取消推荐
	 * @return
	 */
	List<MethodRecommendAudit> getTopByLabIdAndState(@Param("top") Integer top, @Param("labId") Long labId,@Param("state") Integer state);

	/**
	 * 根据管理员Id获取推荐方法记录
	 * @param labId 实验室Id
	 * @param state 审核状态0-等待审核,1-已推荐,2-审核未通过,3-取消推荐
	 * @return
	 */
	List<MethodRecommendAudit> getByLabIdAndState(@Param("labId") Long labId,@Param("state") Integer state);
}
